mediastream: Allow multiple calls to gtk_media_stream_error()
authorBenjamin Otte <otte@redhat.com>
Tue, 18 Dec 2018 01:04:16 +0000 (02:04 +0100)
committerBenjamin Otte <otte@redhat.com>
Tue, 18 Dec 2018 01:04:16 +0000 (02:04 +0100)
Just ignore all further ones.

gtk/gtkmediastream.c

index 86f5c72cc599f9a0819489888a9587ce1a3ff4df..f8a5dc8ce93cfb31a47f92626a4b70107829c8c3 100644 (file)
@@ -1120,6 +1120,10 @@ gtk_media_stream_unprepared (GtkMediaStream *self)
  * your GtkMediaStream.pause() implementation), abort pending seeks
  * and mark the stream as prepared.
  *
+ * if the stream is already in an error state, this call will be ignored
+ * and the existing error will be retained.
+ * FIXME: Or do we want to set the new error?
+ *
  * To unset an error, the stream must be reset via a call to
  * gtk_media_stream_unprepared().
  **/
@@ -1130,9 +1134,11 @@ gtk_media_stream_gerror (GtkMediaStream *self,
   GtkMediaStreamPrivate *priv = gtk_media_stream_get_instance_private (self);
 
   g_return_if_fail (GTK_IS_MEDIA_STREAM (self));
-  g_return_if_fail (gtk_media_stream_get_error (self) == NULL);
   g_return_if_fail (error != NULL);
 
+  if (priv->error)
+    return;
+
   g_object_freeze_notify (G_OBJECT (self));
 
   priv->error = error;